Skip to content

Beta#868

Merged
steveseguin merged 31 commits into
mainfrom
beta
Jun 24, 2026
Merged

Beta#868
steveseguin merged 31 commits into
mainfrom
beta

Conversation

@steveseguin

Copy link
Copy Markdown
Owner

No description provided.

Restore the `icons/webstore.svg` file that was previously missing or removed from the repository. This icon is used for the extension's Chrome Web Store listing.

[auto-enhanced]
Introduce `tipjartype` and `tipjarsource` URL parameters to filter
tips by unit (e.g., stars, bits) or platform (e.g., Facebook, YouTube).
When a filter is active, the jar displays raw unit counts and uses
separate persistent storage per filter combination.

- **sources/facebook.js**: Add `donoValue` field (100 Stars = $1 USD)
- **parameters.md**: Document new tip jar parameters (`tipjartype`,
  `tipjarunit`, `donationtype`, `tipjarsource`, `donationsource`,
  `tipjarunitlabel`, `persistent`, `controls`, `sound`, `hype`)
- **popup.html**: Add dropdown UI for donation type and source filters
- **tipjar.html**: Parse filters, update storage keys, CSV export, and
  history totals; adjust total display for native unit mode
- **docs/event-reference.html**: Update Facebook Stars entry to mention
  `donoValue`

[auto-enhanced]
- Introduce new "bar" display style for the tip jar/ goal meter with configurable fill colors (fillstart, fillend) and fill behavior (progress, gradient, solid)
- Add recurring level support via `levelsize` parameter, enabling repeating goal increments
- Implement additional customization parameters: barheight, noliquid, theme, celebration
- Update popup.html UI with controls for fill color, fill mode, and recurring increment
- Document all new parameters in parameters.md
- Bump manifest version to 3.50.1

[auto-enhanced]
- Introduce `levelRolloverTimer` and `levelCompletionState` to display a completed level briefly before rolling over.
- Modify `updateAmount()` to clear level state on non‑positive amounts or when the level hasn’t advanced, ensuring rollover only triggers on actual level changes.
- Update `resetTipJarAmount()` to call `clearLevelCompletionState()`, so manual resets properly clear any pending rollover display.
- Refine `renderAmount()` and `getProgressState()` to check for the completion state, enabling the brief “level complete” visual before returning to normal progress.

[auto-enhanced]
Extend tipjar with three new display styles (compact bar, vertical bar, text-only) and a test donation panel that sends simulated platform donations (Facebook Stars, YouTube SuperChat, Twitch Bits, TikTok Hearts) directly from the popup. Reorganize tipjar options into separate collapsible sections (General Controls, Hype Cup Scoring, Style/Goal/Filters, Test Donations) for better UX. Update parameters.md with the new style options and the `barradius` parameter, and add corresponding UI elements in popup.html and popup.js.

[auto-enhanced]
Add a new UI toggle and corresponding logic to display only the
progress bar with the text embedded inside, hiding the title and
meta sections. This provides a more compact visualization suitable
for limited-space overlays.

- popup.html: add "Only show the bar, with text inside" checkbox
  mapped to the `baronly` parameter
- tipjar.html: apply `bar-only` CSS class to hide title/meta,
  adjust text rendering to include the title and progress within
  the bar fill

[auto-enhanced]
- Add normalizeDonationTypeFilter() to convert 'cash' to 'usd'
- Update nativeUnitMode to only enable if filter is not 'usd'
- Use normalized filter in donationMatchesTypeFilter()
- Append test tube emoji to 'Test Donations' label in popup.html

[auto-enhanced]
- Store `memberLevel` in `avatarCache` from TikTok rank/grades
- Add `addTikTokEventMeta` helper to attach follower flag and member level to event `data.meta`
- Update `avatarCache.add` signature to accept and persist `memberLevel`
- Rework TTS follower condition: check both `meta.follower` and event name keywords instead of nested `meta.tiktok.follower`
- Read `meta.memberLevel` directly in `tts.js`, removing the nested `data.meta.tiktok` structure

[auto-enhanced]
Reformat the `.then/.catch` chaining in the `trackSdkSendResult` function
to improve readability and align with project linting rules.
This follows up on the server fallback diagnostics added in e12000a.

[auto-enhanced]
- Add `actions/examples/kick-channel-points-action-flow.json` as an importable Event Flow example for Kick reward redemptions.
- Add `docs/kick-channel-points-event-flow.md` with detailed setup instructions, template variables, and troubleshooting.
- Extend `getDockTransportHealth()` in `background.js` with `fakeMessageTransportReady` to indicate if a message transport (P2P or server fallback) is actually available.
- Update `popup.js` to use the new `fakeMessageTransportReady` property when deciding whether to show the fallback banner, simplifying the conditional logic.

This builds on the previous server fallback diagnostics work, ensuring the fake test message button reliably reports transport readiness. The new Kick channel points flow and documentation enable users to harness Kick reward redemptions in Event Flow.

[auto-enhanced]
Add new Kick channel points/rewards event flow documentation with screenshots and update the guides in `docs/guides.html` to link to this guide from the Flow Actions and OBS setup sections.

[auto-enhanced]
Reword the short answer for clarity and change the section heading
from "What Steve should tell the user" to "Overview".

[auto-enhanced]
… extraction plan

Introduce the initial documentation structure under `docs/agents/` to support AI agents answering questions about Social Stream Ninja.

- **00-inventory-and-plan.md**: catalogs existing project sources and proposes a comprehensive 12-section documentation plan
- **01-extraction-checklist.md**: defines extraction levels (quick, heavy, intense), a master checklist for all components, and an extraction pass log

[auto-enhanced]
- Added `13-reference/` index and cross-cutting lookup pages for commands, URL parameters, modes, free/paid boundaries, plugins/customization, support resources, and features/capabilities.
- Updated extraction checklist (`01-extraction-checklist.md`) to mark numerous heavy passes as complete (source inventory, platform sources, product map, support KB mining, etc.).
- Refined inventory plan (`00-inventory-and-plan.md`) with new page roles and updated open questions.

[auto-enhanced]
Address a security advisory by removing the `geolocation` permission from iframes in `aioverlay.html`, `bot.html`, and `dock.html`. Only the `midi` and `microphone` permissions are retained, with the microphone kept to maintain Safari WebRTC P2P connectivity.

Also expand the AI agent documentation inventory with new reference pages (glossary, surface URL cheatsheet, settings change impact matrix, public claims boundary matrix, and capability matrices) and update the extraction checklist to reflect recent heavy extraction passes.

[auto-enhanced]
steveseguin and others added 2 commits June 24, 2026 07:46
Increase wildcardAgentRefCount from 41 to 49 to reflect new
wildcard references added in recent agent documentation updates
(e.g., AI agent framework and extraction progress).
Also add `docs/agents/*/SITEMAP.md` to the known wildcard patterns,
confirming it as an intentional cross-reference rather than a broken
link.

[auto-enhanced]

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 2b326254f9

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread docs/index.html
<meta name="description" content="Client-side Markdown documentation viewer for Social Stream Ninja.">
<link rel="icon" href="../icons/favicon.ico" type="image/x-icon">
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/marked/12.0.1/lib/marked.umd.min.js"></script>

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Vendor the Markdown renderer instead of loading CDN JS

This new CDN <script> pulls executable JavaScript from cdnjs, but the repo instructions for /workspace/social_stream explicitly forbid static CDN script tags/remote executable logic. In packaged extension/Electron or offline contexts this dependency is not self-contained and can be blocked by MV3 CSP, so the docs viewer degrades and the release violates the packaging rules; vendor the library locally or rely on the local fallback instead.

Useful? React with 👍 / 👎.

Create a priority answer matrix offering safe support phrasing and first-check routing for major live-stream platforms (YouTube, TikTok, Twitch, Kick, Rumble, Facebook, Instagram, and Discord).

Update the extraction checklist (`01-extraction-checklist.md`) and resource processing ledger (`02-resource-processing-ledger.md`) to register the new heavy pass and track its corresponding output document (`08-platform-sources/priority-platform-answer-matrix.md`).

[auto-enhanced]
Add a new test source page (`testsource.html`) and content script (`testsource.js`) that dispatches custom `TestSourceMessage` events, allowing manual testing of chat overlay behavior without a live stream. The page includes predefined payloads, a custom message editor, and burst-send functionality. Updated `manifest.json` to register the new content script for the appropriate URLs.

[auto-enhanced]

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 137de7bab4

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

}
}

chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Guard Chrome APIs in the test source

In Electron or standalone contexts that load sources/websocket scripts, chrome is not defined, so this top-level listener throws before the new test source can handle any messages; guard the runtime listener/settings fetch with a chrome.runtime feature check and provide the same non-extension fallback pattern used by shared websocket sources.

Useful? React with 👍 / 👎.

- Add regex filters in `filterXSS` to block event handlers (e.g., `onclick=`, `onerror=`), `javascript:` URIs, the `srcdoc` attribute, and `data:` URIs (including `data:text/html`)
- Extend the WebSocket test source with false-positive test scenarios that verify safe mentions of XSS-related terms are not blocked
- Strengthen initial probe detection while preserving legitimate message content

[auto-enhanced]
The original logic relied on `data.textonly` being set before escaping, which could be overwritten when HTML was allowed. Introduce an `isTextOnlyMessage` flag from the initial data to ensure text-only messages always get proper HTML escaping. Also adjust the HTML processing block to skip sanitization when the message is text-only, preserving the intended behavior.

This continues the XSS hardening effort from recent commits.

[auto-enhanced]
Remove the intermediate `isTextOnlyMessage` variable and use `data.textonly`
directly to control when chat messages are treated as plain text. This corrects
the HTML escaping logic for text-only messages, ensuring they are safely escaped.

Also update agent documentation:
- Add customization validation ledger to extraction checklist and resource
  processing ledger.

[auto-enhanced]
…ng docs

- Add entry in extraction checklist for new API command proof ledger (`13-reference/api-command-proof-ledger.md`), documenting source-backed evidence labels, claim ledger, minimum proof packs, and update rules for command/API paths.
- Update resource processing ledger to include the proof ledger under API and integrations, adjusting processing depth and remaining needs accordingly.

[auto-enhanced]
Add a dedicated proof ledger entry for options and settings to the agent
extraction checklist and update the resource processing ledger.

- `01-extraction-checklist.md`: Add heavy options/settings evidence-ledger pass
  entry with full scope (URL options, popup settings, generated links, app
  state, provider/auth settings, page-local state, duplicate metadata) and
  completion checkbox.
- `02-resource-processing-ledger.md`: Update the settings & storage and
  URL/page routing rows to record the new proof ledger and evidence labels.

[auto-enhanced]

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f0bd9e855a

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tipjar.html
Comment on lines +1756 to +1757
const raw = String(rawDonation || '').toLowerCase();
return !(/\bjewels?\b|\bgift(?:ed|s)?\b/.test(raw));

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Preserve YouTube gifted memberships in tip jar totals

When a YouTube gifted-membership purchase arrives, sources/youtube.js emits it with event: "giftpurchase" and a hasDonation label like N Gifted, but this new guard rejects any YouTube donation text containing gifted before processTip can add it to currentAmount. That regresses normal USD tip jar goals for gifted memberships; narrow this exclusion to Jewel/gift-redemption payloads instead of all gift-like labels.

Useful? React with 👍 / 👎.

…ommon-question docs

Update coverage map, evidence status, and proof pack to cross-reference the new
`13-reference/feature-cost-claims-proof-ledger.md` for feature, cost, provider,
and support proof boundaries.

[auto-enhanced]
@steveseguin
steveseguin merged commit 75db73d into main Jun 24, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant